package com.bms.client.service;

import com.bms.client.pojo.FeiYongGuanLiChanXun;
import com.bms.client.pojo.FeiYongGuanLi;
import com.bms.client.pojo.FeiYongGuanLiZhengJia;
import org.springframework.transaction.annotation.Transactional;

import java.util.Map;

/**
 * 费用管理(FeiYongGuanLi)表服务接口类
 *
 * @author makejava
 * @since 2021-03-16 11:25:10
 * @version 1.0
 */
public interface FeiYongGuanLiService {
    /**
     * 根据模糊条件查询总个数
     *
     * @return 返回查询到的总个数
     */
    Map<String, Object> chaXunCount(FeiYongGuanLiChanXun feiYongGuanLiChanXun);

    /**
     * 查询所有数据
     * @return  返回所有数据
     */
    Map<String, Object> chaXunAll();

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Map<String, Object> chaXunById(Integer id);

    /**
     * 查询分页数据
     *
     * chanXunFenYei
     * @return 对象列表
     */
    Map<String, Object> chaXunFenYe(FeiYongGuanLiChanXun feiYongGuanLiChanXun);

    /**
     * 新增数据
     *
     * @param feiYongGuanLiZhengJia 实例对象
     * @return 实例对象
     */
    Map<String, Object> xinZengXiangMuJingFei(FeiYongGuanLiZhengJia feiYongGuanLiZhengJia);

    /**
     * 通过ID查询单条数据
     *
     * @param feiYongGuanLi 实例对象
     * @return 实例对象
     */
    Map<String, Object> gengXinById(FeiYongGuanLi feiYongGuanLi);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */

    @Transactional(rollbackFor = Throwable.class)
    Map<String, Object> shanChuById(int id);

    Map<String, Object> xinZengHeZuoJingFei(FeiYongGuanLiZhengJia feiYongGuanLiZhengJia);


    @Transactional(rollbackFor = Throwable.class)
    Map<String, Object> gengXinShenHeById(int id, String zhuangTai, String guanLiYuanPiZhu);


    @Transactional(rollbackFor = Throwable.class)
    Map<String, Object> gengXinBoKuanById(int id, String boKuanZhuangTai, String guanLiYuanPiZhu);


    @Transactional(rollbackFor = Throwable.class)
    Map<String, Object> xinZengChuLaiJingFei(String zhuangTai, FeiYongGuanLiZhengJia feiYongGuanLiZhengJia);
}